/**
 * 解决返回顶部的scroll多次触动的问题
 */
var throttle = function() {
    var isClear = arguments[0], fn;
    // 如果第一个参数是boolean类型那么第一个参数表示是否清楚计时器
    if (typeof isClear === 'boolean') {
        fn = arguments[1];
        fn.__throttleID && clearTimeout(fn.__throttleID);
    } else {
        fn = isClear;
        param = arguments[1];
        var p = extend({
            context: null,//函数执行作用域
            args: [],//函数执行相关参数
            time: 300//函数执行延迟时间
        }, param);
        arguments.callee(true, fn);
        fn.__throttleID = setTimeout(function() {
            fn.apply(p.context, p.args);
        }, p.time);
    }
}
